#include<iostream>
#include<sys/wait.h>
#include<unistd.h>
#include<csignal>
void sig_handler(int signal){
    if(signal==SIGINT||signal==SIGTERM){
        exit(signal);
    }
}
int main(){
    // pid_t pid;
    // pid = fork();
    // if(pid==-1){
    //     std::cout<<"faild to create process"<<std::endl;
    //     return 0;
    // }
    // if(pid == 0){
    //     std::cout<<"child process"<<std::endl;
    //     execl("./yoloIdentify","executable",(char *)0);
    //     std::cout<<"child process create falid!"<<std::endl;
    // }
    // else{
    //     int status;
    //     waitpid(pid,&status,0);
    //     if(WIFEXITED(status)){
    //         std::cout<<"child process exit with status "<<WEXITSTATUS(status)<<std::endl;
    //         main();
    //     }
    // }
    std::signal(SIGINT,sig_handler);
    std::signal(SIGTERM,sig_handler);
    const char* command="xterm -e \"./yoloIdentify\"";
    int result = system(command);
    std::cout<<"result:"<<result<<std::endl;
    if(result!=2){
        main();
    }
}